package com.br.categoria;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;



@ManagedBean(name = "categoriaBean")
@RequestScoped
public class CategoriaBean {
        
        private List<SelectItem> categoriaSelect;

        private Categoria categoria = new Categoria();

        public Categoria getCategoria() {
                return categoria;
        }

        private List<Categoria> lista = null;

        public List<Categoria> getLista() {
                CategoriaRN categoriaRN = new CategoriaRN();
                if (lista == null) {
                        lista = categoriaRN.listar();
                }
                return lista;
        }

        public void setCategoria(Categoria categoria) {
                this.categoria = categoria;
        }

        public void salvar() {

                CategoriaRN categoriaRN = new CategoriaRN();

                categoriaRN.salvar(this.categoria);

        }

        public String novo() {

                this.categoria = new Categoria();

                this.categoria.setFlagativa(true);

                return "categoria";
        }

        public String ativar() {

                if (this.categoria.isFlagativa())

                        this.categoria.setFlagativa(false);

                else
                        this.categoria.setFlagativa(true);
                CategoriaRN categoriaRN = new CategoriaRN();
                categoriaRN.salvar(this.categoria);

                return null;
        }

        public String produtoAtivo() {

                if (this.categoria.isFlagativa())

                        this.categoria.setFlagativa(false);

                else

                        this.categoria.setFlagativa(true);
                CategoriaRN categoriaRN = new CategoriaRN();
                categoriaRN.salvar(this.categoria);

                return null;
        }

        public void excluir() {
                CategoriaRN categoriaRN = new CategoriaRN();
                categoriaRN.excluir(this.categoria);
                this.lista = null;

        }

        public String editar() {

                return "categoria";
        }

        public List<SelectItem> getCategoriaSelect() {
                if (categoriaSelect == null) {

                        categoriaSelect = new ArrayList<SelectItem>();
                        CategoriaRN categoriaRN = new CategoriaRN();
                        List<Categoria> listaCategoria = categoriaRN.listar();

                        if (listaCategoria != null && !listaCategoria.isEmpty()) {
                                SelectItem item;
                                for (Categoria categoriaLista : listaCategoria) {
                                        item = new SelectItem(categoriaLista,
                                                        categoriaLista.getCategoria().toString());
                                        categoriaSelect.add(item);
                                }
                        }

                }

                return categoriaSelect;
        }
        

        public void setCategoriaSelect(List<SelectItem> categoriaSelect) {
                this.categoriaSelect = categoriaSelect;
        }

}
